#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int T,n,m,L,V;
int d[100005],v[100005],a[100005],p[100005];
bitset<100005> bits;
int calc(int d,int v,int a,int p){
    int a2x=a*(d-p)*2,v2=v*v;
    int rv=a2x+v2;
    int res=ceil(sqrt(rv));
    if(a<0&&(res-v)>v)return 0;
    else return res;
}
int check(){
    int res=0;
    for(int i=1;i<=n;i++){
        bool flag=0,fl;
        for(int j=1;j<=m;j++){
                int c=calc(d[i],v[i],a[i],p[j]);
            if(c>V){
                fl=true;
                if(flag)bits.set(j-1,0);
                if(!bits[j])flag=1;
                bits.set(j);
            }else if(c==0)break;
        }
        res+=fl;
    }
    return res;
}
int main(){
    //freopen("detect.in","r",stdin);
    //freopen("detect.out","w",stdout);
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d%d",&n,&m,&L,&V);
        ll ans=0;
        bits.reset();
        for(int i=1;i<=n;i++)scanf("%d%d%d",&d[i],&v[i],&a[i]);
        for(int i=1;i<=m;i++)scanf("%d",&p[i]);
        cout<<check()<<' '<<m-bits.count()<<endl;
    }
}
